{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import matplotlib\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = np.poly1d([-1/72**2, 0, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ffb313b0d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0, 72, 100)\n",
    "plt.figure(figsize=(6,3))\n",
    "plt.plot(x, y(x))\n",
    "plt.plot([24, 24], [0, y(24)], color='black')\n",
    "plt.plot([48, 48], [0, y(48)], color='black')\n",
    "plt.plot([24, 48], [y(24), y(48)], 'o')\n",
    "plt.annotate('  {0:.2f}'.format(y(24)), xy=(24, y(24)))\n",
    "plt.annotate('  {0:.2f}'.format(y(48)), xy=(48, y(48)))\n",
    "plt.ylim(0, plt.ylim()[1])\n",
    "plt.xticks([0, 12, 24, 36, 48, 60, 72])\n",
    "plt.xlim(0, plt.xlim()[1])\n",
    "plt.ylabel('Percent of total points')\n",
    "plt.xlabel('Hours late')\n",
    "plt.tight_layout()\n",
    "plt.savefig('late_policy.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
